perm filename APP6[AIM,DBL] blob sn#151679 filedate 1975-03-27 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	.DEVICE XGP
C00003 00003	\7APPENDIX 6. \* \3CF .... RUNNING\*
C00036 ENDMK
C⊗;
.DEVICE XGP
.FONT 1 "FIX25"
.FONT 2 "SIGN57"
.FONT 3 "SHD40"
.FONT 4 "BDI25"
.FONT 5 "NGB30"
.FONT 6 "NGR20"
.PAGE FRAME 53 HIGH 75 WIDE
.TURN ON "↓_π{"
.TURN ON "\" FOR "%"
.MACRO B ⊂ BEGIN VERBATIM GROUP ⊃
.MACRO E ⊂ APART END ⊃
.TABBREAK
.EVERY FOOTING(\6Fourth Draft .... {DATE},page A6.{IF PAGE = 1 THEN 1 ELSE PAGE},User/CF Dialogue excerpts\*)
.EVERY HEADING(\3BEINGS\*,,\4Doug Lenat\*)
.COUNT PAGE PRINTING "1"
.NEXT PAGE

\7APPENDIX 6. \* \3CF .... RUNNING\*
.NOFILL




\7<Here is the synthesized program itself, CF, running.>\*

←\4ENTER(T)\*

USER INTERRUPT LEVEL... \40\*


\7PUP:\* (PUP IS ABOUT TO WORK ON CONCEPT FORMATION)


\7PUP:\* (THE TYPE OF CONCEPT FORMATION PUP IS ABOUT TO WORK ON IS
CLASSIFICATORY-CONCEPT-FORMATION)

(COMMENT READY TO ACCEPT BRAND NEW ELEMENT-4)

\4(ARCH (A B C) (S A B) (S C B) (BLOCK A) (BLOCK B) (BLOCK C))\*

	ARCH
	OBJECTS (A B C)
	MAY HAVE ((S A B) (S C B) (BLOCK A) (BLOCK B) (BLOCK C))

(COMMENT READY TO ACCEPT BRAND NEW ELEMENT-4)

\4(TOWER (A B C D) (S A B) (S B C) (S C D) (BLOCK A) (BLOCK B) (BLOCK C))\*

	ARCH
	OBJECTS (A B C)
	MAY HAVE ((S A B) (S C B) (BLOCK A) (BLOCK B) (BLOCK C))

	TOWER
	OBJECTS (A B C D)
	MAY HAVE ((S A B) (S B C) (S C D) (BLOCK A) (BLOCK B) (BLOCK C))

(COMMENT READY TO ACCEPT BRAND NEW ELEMENT-4)

\4(??? (A B C) (S A B) (S C B))\*

(COMMENT I MUST TELL YOU (COMMENT MY GUESS FOR POSSIBLE-NAME-OF-CLASS IS
     ARCH))

PLEASE GIVE ME NAME-OF-CLASS

\4ARCH\*

	ARCH
	OBJECTS (A B C)
	MAY HAVE ((S A B) (S C B) (BLOCK A) (BLOCK B) (BLOCK C))

	TOWER
	OBJECTS (A B C D)
	MAY HAVE ((S A B) (S B C) (S C D) (BLOCK A) (BLOCK B) (BLOCK C))

(COMMENT READY TO ACCEPT BRAND NEW ELEMENT-4)

\4(??? (A B C) (S A B) (S C B) (BLOCK A) (BLOCK C) (TOUCH A C) (BLOCK B))\*

(COMMENT I MUST TELL YOU (COMMENT MY GUESS FOR POSSIBLE-NAME-OF-CLASS IS
     ARCH))

PLEASE GIVE ME NAME-OF-CLASS

\4NOTHING\*

	ARCH
	OBJECTS (A B C)
	MUSNT HAVE ((TOUCH A C))
	MAY HAVE ((S A B) (S C B) (BLOCK A) (BLOCK B) (BLOCK C))

	TOWER
	OBJECTS (A B C D)
	MAY HAVE ((S A B) (S B C) (S C D) (BLOCK A) (BLOCK B) (BLOCK C))

(COMMENT READY TO ACCEPT BRAND NEW ELEMENT-4)

\4(??? (A B C) (BLOCK A) (BLOCK B) (BLOCK C))\*

(COMMENT I MUST TELL YOU (COMMENT MY GUESS FOR POSSIBLE-NAME-OF-CLASS IS
     ARCH))

PLEASE GIVE ME NAME-OF-CLASS

\4NOTHING\*

	ARCH
	OBJECTS (A B C)
	MUST HAVE ((S A B))
	MUSNT HAVE ((TOUCH A C))
	MAY HAVE ((S C B) (BLOCK A) (BLOCK B) (BLOCK C))

	TOWER
	OBJECTS (A B C D)
	MAY HAVE ((S A B) (S B C) (S C D) (BLOCK A) (BLOCK B) (BLOCK C))

(COMMENT READY TO ACCEPT BRAND NEW ELEMENT-4)

\4(??? (A B C) (BLOCK A) (BLOCK C) (S A B) (BLOCK B))\*

(COMMENT I MUST TELL YOU (COMMENT MY GUESS FOR POSSIBLE-NAME-OF-CLASS IS
     ARCH))

PLEASE GIVE ME NAME-OF-CLASS

\4NOTHING\*

	ARCH
	OBJECTS (A B C)
	MUST HAVE ((S A B) (S C B))
	MUSNT HAVE ((TOUCH A C))
	MAY HAVE ((BLOCK A) (BLOCK B) (BLOCK C))

	TOWER
	OBJECTS (A B C D)
	MAY HAVE ((S A B) (S B C) (S C D) (BLOCK A) (BLOCK B) (BLOCK C))

\7<notice that at this point, the model for ARCH is the usual one>\*


(COMMENT READY TO ACCEPT BRAND NEW ELEMENT-4)

\4(??? (A B C) (TOUCH A C) (TOUCH B C) (BLOCK A) (RED B))\*

(COMMENT I MUST TELL YOU (COMMENT MY GUESS FOR POSSIBLE-NAME-OF-CLASS IS
     TOWER))

PLEASE GIVE ME NAME-OF-CLASS

\4ROW\*

	ARCH
	OBJECTS (A B C)
	MUST HAVE ((S A B) (S C B))
	MUSNT HAVE ((TOUCH A C))
	MAY HAVE ((BLOCK A) (BLOCK B) (BLOCK C))

	TOWER
	OBJECTS (A B C D)
	MUST HAVE ((S A B))
	MAY HAVE ((S B C) (S C D) (BLOCK A) (BLOCK B) (BLOCK C))

	ROW
	OBJECTS (A B C)
	MAY HAVE ((TOUCH A C) (TOUCH B C) (BLOCK A) (RED B))

(COMMENT READY TO ACCEPT BRAND NEW ELEMENT-4)

\4(ARCH (A B C D) (S A B) (TOUCH A C))\*

	ARCH
	OBJECTS (A B C (D))
	MUST HAVE ((S A B))
	MAY HAVE ((BLOCK A) (BLOCK B) (BLOCK C) (TOUCH A C) (S C B))

\7<notice how contradictory user input is handled: features are simply
    transferred from the MUST/MUSTNOT sets to the MAY set>\*

	TOWER
	OBJECTS (A B C D)
	MUST HAVE ((S A B))
	MAY HAVE ((S B C) (S C D) (BLOCK A) (BLOCK B) (BLOCK C))

	ROW
	OBJECTS (A B C)
	MAY HAVE ((TOUCH A C) (TOUCH B C) (BLOCK A) (RED B))


(COMMENT READY TO ACCEPT BRAND NEW ELEMENT-4)

\4(HALT)\*

\7PUP:\* (PUP HAS THOUGHT ABOUT THE CLASSIFICATORY-CONCEPT-FORMATION TYPE OF
     CONCEPT-FORMATION)




FINISHED CURRENT SERVICE; WHAT SHOULD I DO? TYPE ONE OF:

1   EXIT FROM SYSTEM
2   CONTINUE SERVING, AS BEFORE
3   CONTINUE SERVING, BUT GET A NEW USER INTERRUPT LEVEL
4   REINITIALIZE SYSTEM AND START FROM BEGINNING AGAIN

OK, GO .......... \43\*

USER INTERRUPT LEVEL... \410\*

\7The user has switched to a mode where he can interrupt after each BEING
		gets control, and ask it questions.\*

DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** SATISFY *** (CF-1)   \7<the control history stack. Note that the
					top element is CF-1, not SERVE.>\*

REQUEST: \4WHAT
\*(SATISFY THE SIMPLE SUBGOAL (AWARE USER (PUP IS ABOUT TO WORK ON 
    						CONCEPT FORMATION)))
REQUEST: \4HOW
\*(PASS CONTROL TO THE SIMPLEST SUFFICIENT BEING)

REQUEST: \4WHY
\*((AWARE USER (PUP IS ABOUT TO WORK ON CONCEPT FORMATION)) IS A REQUISITE
      	 TO BE SATISFIED)

REQUEST: \4OLDER
\*CF-1

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (LEARN HOW TO IMPOSE A CONCEPT 
		STRUCTURING UPON A DOMAIN; LEARN HOW TO CHARACTERIZE,
		OR AT LEAST DISTINGUISH, VARIOUS CONCEPTS))

REQUEST: \4WHY
\*(CONCEPT-LEARNING IS NECESSARY TO CONCEPT KNOWLEDGE, AND CONCEPT-FORMATION
        	IS TOO GENERAL TO USE AS IT IS)

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4BEING
\*PAD-2

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (DIVIDE A DOMAIN INTO SUBDOMAINS; 
		USUALLY THESE WILL BE DISJOINT, AND THEIR UNION
		WILL BE THE ENTIRE DOMAIN))

REQUEST: \4WHY
\*(BECAUSE PUP MUST ENCODE A FUNCTION WHICH PARTITIONS A DOMAIN INTO 
   		CLASSES, AND PARTITION-A-DOMAIN IS TOO GENERAL
		TO USE AS IT IS)

REQUEST: \4HOW
\*(BY BUILDING UP THE PARTITION GRADUALLY, BY ADDING TO OUR KNOWLEDGE OF
		THE PARTITION ONE PAIR AT A TIME; HERE A
		PAIR IS <ELEMENT, CLASS-NAME>)

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** TAKE-HOLD-OF-3 *** (PAD-2 CF-1)

REQUEST: \4WHY
\*(PUP WANTS ELEMENT-4 ,AND WE DON'T HAVE TO DO ANY COMPUTING TO GET IT 
		AND TAKE-HOLD-OF IS TOO GENERAL TO USE AS
		IT IS)

REQUEST: \4HOW
\*(LOOK AROUND A LITTLE; IF IT ISNT FOUND TRIVIALLY, THEN ASK THE USER 
		TO GIVE ELEMENT-4 TO US)

REQUEST: \4AFFECTS
\*((ELEMENT-4 POSSIBLE CALLED)
 (ELEMENT-OBJECTS-11 POSSIBLE CALLED)
 (ELEMENT-CLASSNAME-13 POSSIBLE CALLED)
 (ELEMENT-RELNS-15 POSSIBLE CALLED))

REQUEST: \4QUIT


\*(COMMENT READY TO ACCEPT BRAND NEW ELEMENT-4)

\4(??? (A B) (BLOCK A]\*

DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** SOME-PART-OF-14 *** (TAKE-HOLD-OF-3 PAD-2 CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (THIS IS A DESTRUCTIVE FUNCTION; IT 
		BREAKS A PIECE OFF OF (??? (A B) (BLOCK A))))

REQUEST: \4WHY
\*(ONLY PART OF (??? (A B) (BLOCK A)) IS DESIRED AT THIS POINT, AND
		SOME-PART-OF IS TOO GENERAL TO USE AS IT IS)

REQUEST: \4META-CODE
\*(PROGN (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS (COMMENT
							       EVAL ARG1)) 
       (CAR ARG1))

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** FOREACH-17 *** (GET-HOLD-OF-8 PAD-2 CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (GO THROUGH THE KNOWN SPACE OF POSSIBLE
		NAMES-OF-CLASS ,WHICH IS 
		SET-OF-POSSIBLE-NAMES-OF-CLASS ,AND PERFORM 
		(TEST-18 POSSIBLE-NAME-OF-CLASS
       		         (COMMENT FOR SATISFACTION OF GOAL CRITERIA))
		ON EACH, UNTIL SOME SPECIFIED TERMINATION 
		CONDITION IS REACHED))

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4BEING
\*TEST-18

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (TEST TO SEE IF THE ARG1 ARCH MEETS 
		THE DESIRED CONDITIONS (COMMENT FOR SATISFACTION
		OF GOAL CRITERIA)))

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** COMPARE-26 *** (COMPARE-19 TEST-18 FOREACH-17 GET-HOLD-OF-8 
				PAD-2 CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (COMPARE ((S A B) (BLOCK A) (BLOCK B) 
					    (BLOCK C) (TOUCH A C) (S C B)) 
		WITH 
			((BLOCK A))))

REQUEST: \4WHY
\*(PUP WANTS TO SEE IF ((S A B) (BLOCK A) (BLOCK B) (BLOCK C) (TOUCH A C)
		S C B)) IS CLOSE ENOUGH TO ((BLOCK A))
		AND COMPARE IS TOO GENERAL TO USE AS IT IS)

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** CONTRADICTS-27 *** (COMPARE-26 COMPARE-19 TEST-18 FOREACH-17 
				GET-HOLD-OF-8 PAD-2 CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (SEE IF (S A B) IS IN CONTRADICTION TO
		THE COLLECTION ((BLOCK A))))

REQUEST: \4HOW
\*(SEE HOW A (S A B) TYPE OF ARG1 CAN BE CONTRADICTORY, THEN EXAMINE THE
		RELATIONSHIP BETWEEN (S A B) AND ((BLOCK A)))

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** JOIN-23 *** (COMPARE-19 TEST-18 FOREACH-17 GET-HOLD-OF-8 PAD-2
			     CF-1)

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** TEST-18 *** (FOREACH-17 GET-HOLD-OF-8 PAD-2 CF-1)

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** CONTRADICTS-27 *** (COMPARE-26 COMPARE-19 TEST-18 FOREACH-17 
				GET-HOLD-OF-8 PAD-2 CF-1)

REQUEST: \4META-CODE
\*(PROGN 
   (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS RELATION)
   (COMMENT IN ALL CALLS TO DATE, ARG2 IS 
			          INSTANTIATED AS ELEMENT-RELNS-15) 
   (COND ((MEMBER ARG1 YES-RELNS-28)
          (COMMENT ARG1 OCCURS WITH PROBABILITY 1, SO IT HAD
                     BETTER BE IN ARG2, THE RELEVANT PIECE OF THE WORLD)
          (NOT (MEMBER ARG1 ARG2)))
         ((MEMBER ARG1 NO-RELNS-29)
          (COMMENT SINCE ARG1 SHOULD NEVER OCCUR, WE HAVE A 
                     CONTRADICTION IFF IT IS A MEMBER OF ARG2)         
          (MEMBER ARG1 ARG2))
         (T (COMMENT WE MAY OR MAY NOT HAVE ARG1 IN ARG2;  EITHER
			CASE IS ALLOWABLE; SO WE NEVER HAVE A
                        CONTRADICTION) 
           NIL)))


REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** TEST-18 *** (FOREACH-17 GET-HOLD-OF-8 PAD-2 CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (TEST TO SEE IF THE ARG1 ROW MEETS THE
		DESIRED CONDITIONS (COMMENT FOR SATISFACTION
		OF GOAL CRITERIA)))

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** CONTRADICTS-27 *** (COMPARE-26 COMPARE-19 TEST-18 FOREACH-17 
				GET-HOLD-OF-8 PAD-2 CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (SEE IF (BLOCK A) IS IN CONTRADICTION 
		TO THE COLLECTION ((BLOCK A))))

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** CONTRADICTS-27 *** (COMPARE-26 COMPARE-19 TEST-18 FOREACH-17 
				GET-HOLD-OF-8 PAD-2 CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (SEE IF (RED B) IS IN CONTRADICTION TO
		THE COLLECTION ((BLOCK A))))

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO


\*(COMMENT I MUST TELL YOU (COMMENT MY GUESS FOR POSSIBLE-NAME-OF-CLASS 
		IS ROW))

DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** ASK-USER-ABOUT-60 *** (FOREACH-17 GET-HOLD-OF-8 PAD-2 CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (ASK THE USER TO RESOLVE DECISION
		INVOLVING NAME-OF-CLASS))

REQUEST: \4WHY
\*(BECAUSE PUP CANNOT RESOLVE IT, BUT MUST AT THIS TIME AND ASK-USER-ABOUT
		IS TOO GENERAL TO USE AS IT IS)

REQUEST: \4HOW
\*(ASK THE USER WHAT THE RESOLUTION IS)

REQUEST: \4META-CODE
\*(PROGN (COMMENT IN ALL CALLS TO DATE, ARG1 IS INSTANTIATED AS (COMMENT
							  NAME-OF-CLASS)) 
       (PRIN1 
	     "
	      PLEASE GIVE ME ") 
       (PRINT ARG1) 
       (SET ARG1 (READ)))


REQUEST: \4QUIT
\*


PLEASE GIVE ME NAME-OF-CLASS

\4NOTHING\*

DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** MODIFY-STRUCTURE-9 *** (PAD-2 CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (MODIFY THE STRUCTURE CONTAINING 
					"NOTHING" AS AN ELEMENT))

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4BEING
\*CONDITIONAL-INSERTION-44

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** COMPLEX-ALTERATION-46 *** (COMPLEX-ALTERATION-45
			             MODIFY-STRUCTURE-9 PAD-2 CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (ALTER ROW AND/OR ANOTHER ELEMENT OF 
					THE SAME OUTER LIST))

REQUEST: \4WHY
\*(BECAUSE MODIFYING THE STRUCTURE OF AN INDIVIDUAL ELEMENT IS EQUIVALENT
		TO UPDATING OUR DESCRIPTION OF A SINGLE
		PARTICULAR CONCEPT, AND THIS IS FUNDAMENTAL
		TO A DECENT CONCEPT FORMATION
		PROGRAM, AND COMPLEX-ALTERATION IS TOO GENERAL
		TO USE AS IT IS)

REQUEST: \4HOW
\*(BY MODIFYING THE STRUCTURE OF SUCH AN ELEMENT)

REQUEST: \4OLDER
\*COMPLEX-ALTERATION-45

REQUEST: \4CH
\*(COMPLEX-ALTERATION-46) *** COMPLEX-ALTERATION-45 *** (MODIFY-STRUCTURE-9
							  PAD-2 CF-1)

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** IS-OF-TYPE-61 *** (PAD-2 CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (SEE IF ARG IS OF THE TYPE SPECIFIED. 
		THE PARTICULAR TYPE IS DELINEATED BY THE SPECIAL
		KNOWLEDGE:  (COMMENT BREAKAWAY)))

REQUEST: \4META-CODE
\*(EQUAL NAME-OF-CLASS HALT)

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4CH
\*NIL *** FOREACH *** (PAD-2 CF-1)

REQUEST: \4WHAT
\*(GO THROUGH THE KNOWN SPACE OF NAMES,
		WHICH IS SET-OF-POSSIBLE-NAMES-OF-CLASS,
                AND PERFORM 
		(PROGN (PRINT NAME)
   		       (COND ((GETP NAME CLASS-OBJECTS-33) 
			      (PRIN1 "OBJECTS ") 
			      (PRINT (GETP NAME
			                   CLASS-OBJECTS-33))))
 		       (COND ((GETP NAME CLASS-YES-RELNS-35)
			      (PRIN1 "MUST HAVE ") 
  			      (PRINT (GETP NAME 
				           CLASS-YES-RELNS-35)))) 
		       (COND ((GETP NAME CLASS-NO-RELNS-36)
			      (PRIN1 "MUSNT HAVE ") 
			      (PRINT (GETP NAME 
				           CLASS-NO-RELNS-36))))
		       (COND ((GETP NAME CLASS-MAYBE-RENS-37)
			      (PRIN1 "MAY HAVE ") 
			      (PRINT (GETP NAME 
				           CLASS-MAYBE-RELNS-37)))) 
		       (TERPRI) 
		       T) 
		ON EACH, UNTIL
		SOME SPECIFIED TERMINATION CONDITION IS REACHED)


REQUEST: \4QUIT
\*

	ARCH
	OBJECTS (A B C (D))
	MUST HAVE ((S A B))
	MAY HAVE ((BLOCK A) (BLOCK B) (BLOCK C) (TOUCH A C) (S C B))

	TOWER
	OBJECTS (A B C D)
	MUST HAVE ((S A B))
	MAY HAVE ((S B C) (S C D) (BLOCK A) (BLOCK B) (BLOCK C))

	ROW
	OBJECTS (A B C)
	MUST HAVE ((TOUCH A C))
	MAY HAVE ((TOUCH B C) (BLOCK A) (RED B))


DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4SET-OF-POSSIBLE-NAMES-OF-CLASS
\*(ARCH TOWER ROW)

REQUEST: \4CH
\*NIL *** TAKE-HOLD-OF-3 *** (PAD-2 CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (TAKE THE ARG1 ELEMENT-4 IN A TRIVIAL 
		WAY; EITHER BY ACCESSING IT OR BY READING
		IT IN))

REQUEST: \4QUIT


\*(COMMENT READY TO ACCEPT BRAND NEW ELEMENT-4)

\4(??? (A B C) (BLOCK A) (BLOCK B]\*


DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YES

\*REQUEST: \4ELEMENT-4
\*(??? (A B C) (BLOCK A) (BLOCK B))

REQUEST: \4CH
\*NIL *** SOME-PART-OF-12 *** (TAKE-HOLD-OF-3 PAD-2 CF-1)

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
 .
 .
 .
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4NO
\*


(COMMENT I MUST TELL YOU (COMMENT I GIVE UP))

 .
 .
 .

REQUEST: \4CH
\*NIL *** SIMPLE-COMPARE-FN-43 *** (BETTER-38 CONDITIONAL-INSERTION-55 
				MODIFY-STRUCTURE-42 COMPLEX-ALTERATION-45 
				MODIFY-STRUCTURE-9 PAD-2 CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (QUASI-COMPARISON WHICH ALWAYS RETURNS
     A CONSTANT VALUE))

REQUEST: \4WHY
\*(BECAUSE ORDERING ISNT VERY IMPORTANT HERE, AND SIMPLE-COMPARE-FN IS 
		TOO GENERAL TO USE AS IT IS)

REQUEST: \4QUIT

\*DO YOU WANT TO INTERRUPT ME NOW, TO ASK ABOUT WHAT I'M DOING? \4YYES
\*
WRONG;  TYPE  YES   OR    NO   ......... INTERRUPT? \4YES

\*REQUEST: \4CH
\*NIL *** BETTER-38 *** (CONDITIONAL-INSERTION-55 MODIFY-STRUCTURE-42 
			COMPLEX-ALTERATION-45 MODIFY-STRUCTURE-9 PAD-2
			CF-1)

REQUEST: \4EXPLICIT-ARGS
\*(B1 B2)

REQUEST: \4B1
\*(S A B)

REQUEST: \4B2
\*(S C D)

REQUEST: \4OLDER
\*CONDITIONAL-INSERTION-55

REQUEST: \4CH
\*(BETTER-38) *** CONDITIONAL-INSERTION-55 *** (MODIFY-STRUCTURE-42 
			COMPLEX-ALTERATION-45 MODIFY-STRUCTURE-9 PAD-2
			CF-1)

REQUEST: \4WHAT
\*(A SPECIALIZED BEING WHICH DOES (PERHAPS WE WILL STICK IN A 
		((S B C) (S C D) (BLOCK A) (BLOCK B) (BLOCK C)) -TYPE
		ELEMENT INTO ITS PARENT
                STRUCTURE))

REQUEST: \4META-CODE
\*(PROGN 
   (SETQ RESULT-7 (LIST-JOIN RESULT-5 RESULT-6 
                            (SETDIFFERENCE ELEMENT-RELNS-15
                                     (APPEND (GETP NAME-OF-CLASS 
                                                   CLASS-YES-RELNS-35) 
                                             (GETP NAME-OF-CLASS 
						   CLASS-NO-RELNS-36) 
					     (GETP NAME-OF-CLASS
           					   CLASS-MAYBE-RELNS-37))
	))) 
   NIL 
   (COND
     (RESULT-7 
      (PUT NAME-OF-CLASS
	   CLASS-MAYBE-RELNS-37 
	   (MERGE-IN RESULT-7 
		     (GETP NAME-OF-CLASS
			   CLASS-MAYBE-RELNS-37)
		     BETTER-38)))
     (T (SETQ RESULT-7 NIL))))


REQUEST: \4RESULT-7
\*((S A B))

REQUEST: \4RESULT-6
\*NIL

REQUEST: \4RESULT-5
\*((S A B))

REQUEST: \4(GETP NAME-OF-CLASS CLASS-MAYBE-RELNS-37]
\*((S B C) (S C D) (BLOCK A) (BLOCK B) (BLOCK C))

REQUEST: \4QUIT
 .
 .
 .
\*(COMMENT READY TO ACCEPT BRAND NEW ELEMENT-4)

\4(HALT)\*



FINISHED CURRENT SERVICE; WHAT SHOULD I DO? TYPE ONE OF:

1   EXIT FROM SYSTEM
2   CONTINUE SERVING, AS BEFORE
3   CONTINUE SERVING, BUT GET A NEW USER INTERRUPT LEVEL
4   REINITIALIZE SYSTEM AND START FROM BEGINNING AGAIN

OK, GO .......... \41\*

"EXITING SYSTEM"

\7<end of session with the synthesized program>\*

←\4SET-OF-POSSIBLE-NAMES-OF-CLASS\*
(ARCH TOWER ROW HALT)

←\4CDR(ARCH)\*
(CLASS-OBJECTS-33   (A B C (D))    
 CLASS-CLASSNAME-34 ARCH
 CLASS-YES-RELNS-35 ((S A B))    
 CLASS-NO-RELNS-36  NIL 
 CLASS-MAYBE-RELNS-37 ((BLOCK A) (BLOCK B) (BLOCK C) (TOUCH A C) (S C B)))